factor datastrcutures into separate module for slightly better import-friendlyness