makes it a lot more reusable