fixed implementation issues