write docs, change method order