start to add abstract convenience methods and defaults
start to add abstract convenience methods and defaults
update new commits for submodule