add ulimit warning and use class for input