module definitions