Variables and types

Ready to be reviewed.