Cleaned up struct implementation