generic module stuff. will probably get rid of it again