making it more dynamic