assembly I wrote to teach myself, you may use it however you please