I do rather like working by the hour for clients rather than by project. That way, the client can't renege on me and tell me I've breached the contract when they change requirements.