completed #1 - basic character model