these should be prototype methods.