And a some more but this should at least make it functional (fingersX,ed)