make all functions optional
update README