slightly cleaner initializer