add serialization mechanisms
more helper methods