made things a bit more dynamic