basic webapp functions now work