made some things dynamic at runtime