add initial implementations