still need a good solution to the rough edge

but so far it works