smart initialization
renaming