Initial attempt at implementation