grant nickless answered This is a question that would take a book to answer narrow it down to what you want