replaced public fields with methods; added save and update methods
added some magic
upd: small fixes