added skeleton for testing and factory