i'm thinking combining #1 and #2