First attempt at finishing. Needs testing