Refactor model to move responsibility to Character