cleaned up. added constructor