adding features

unfinished