update readme
restructure and conditional types