hopefully functional, still edges to trim