Updated with usage. Will make this better when I have more time