finish #15 functionality, still need styling