implement functions for assignment