add file
protocol method adapted
finish basic functions >to be perfect on interface

basically, you’d run with this commit. but i’ll do some improvement
work later.