finished design implemtation