now its more functional