Generalise drawer functionality