Fix bugs; refactor models

30/30: +-+_-_-_-_-+_-_-_-_-_-_-_++-_-_,------,   
25/30: +-+_-_-_-_-+_-_-_-_-_-_-_++-_-_|   /\_/\
 5/30: +-+_-_-_-_-+_-_-_-_-_-_-_++-_-^|__( x .x) 
 0/30: +-+_-_-_-_-+_-_-_-_-_-_-_++-_-  ""  ""