guards added, red not implemented