Added [Serializable] where necessary