working prototype.
attempted at using tap