exercise JS framework