add some more ops, reorganise a bit, bugfix