add basic operations and some custom