implements and static work correctly (bugs fixed)