Add detailed documentation