hide struct for testing