cleaning up code, moved status check into interface itself