add peek and clear