add functionality, flexibility