use push state. handle direct linking. add selected class