made it more APIish