implemented adding, some experimental changes...