add pause function & stuff