coded clear and and constructor