takes input