make everything configurable and use flags