cleaned up and added force initializer