rename create() to of(); clean up