Implement alignment of user defined types. This also fixes the layout