Initial unit implementation, unfinished