huge refactor
top, right, bottom now works almost as i expected
(2 hours of debugging, for a single mistake (L))