implemented assignmend