general programming observations