tentative object methods working and fairly clean