cleanup and added get set has and unset methods