Give most methods more explicit names. Add comments.