now accepts parameters cleanly