for a simplified version of this just read my carrd most stuff on here is in no particular order
carrd...